Plot all RSMD data

Plot RMSD per mutant and conformation

RMSD distributions: Last 10ns MD

Distribution from RMSD trajectory data

Distribution from mean RMSD trajectory data

Rank models: Low-to-High Mean-RMSD (90-100ns)

Print out data

Plot RMSD data

Lowest-RMSD models

Plot their RMSD

Model comparisons

Slides featuring screenshots of the RMSD-selected models with respect to their original docking models and a model of wild-type Wza-D4 can be found here

Conductance calulations

HISTORGRAM

Code lines for protein frame extraction and HOLE execution

cWza/conformation0/refined1_0001_INPUT_0231_ignorechain/
cWza/conformation1/refined1_0001_INPUT_0198_ignorechain/
cWza-K375C/conformation0/refined1_0001_INPUT_0645_ignorechain/
cWza-K375C/conformation1/refined1_0001_INPUT_0448_ignorechain/
cWza-S355C/conformation0/refined1_0001_INPUT_0273_ignorechain/
cWza-S355C/conformation1/refined1_0001_INPUT_0050_ignorechain/
cWza-Y373C/conformation1/refined1_0001_INPUT_0337_ignorechain/
for path in `cat paths_list_protein_extraction.txt`; do 
    python ~/mpmodeling/tools/protein_frame_extractor.py md_100ns $path; 
done
(for n in `seq 900 1000`; do run_hole Protein_${n}.pdb ; done) &

Inspection of residues at bottleneck

Compute distance between residue pairs in trajectory showing conductance transition

Tutorial: https://userguide.mdanalysis.org/1.0.1/examples/analysis/distances_and_contacts/distances_between_selections.html

NOTE This solve the import issue temporarily only!

Distances between residues

residue-residue distance analysis

Put all together

Hbonds analysis

https://docs.mdanalysis.org/dev/documentation_pages/analysis/hydrogenbonds.html

cWza-S355C

Analyse H-bonds for all the above residue pairs

Plot all data

Compare H-bonds from leading residues forming H-bonds wrt the whole protein

cWza-Y373C

Analyse H-bonds for all the above residue pairs

Plot all data

Compare H-bonds from leading residues forming H-bonds wrt the whole protein

Plot RMSF per mutant and conformation

Raw data

Averaged data

for n in `seq -f "%04g" 1 1000`; do line=$(grep "TAG" refined1_0001_INPUT_${n}_ignorechain.hole_dat); echo $n $line; done > cWza_hole_1-1000.raw_dat

APPENDIX

Script to add chain numbers to protein PDBs extracted from md_100ns.gro files

from pymol import cmd
import sys

pdb_in = sys.argv[1] # Input PDB path
pdb_out = sys.argv[2] # Output PDB path

cmd.load(pdb_in,"MyProtein")
N_atoms = cmd.count_atoms("MyProtein")

Chains = ['A', 'B','C','D','E','F','G','H']

atoms_per_chain = N_atoms/len(Chains)

for k in range(len(Chains)):
    atom_number_intial = int( 1 + k*atoms_per_chain )
    atom_number_final  = int( (k + 1)*atoms_per_chain )
    selection = "id "+ str(atom_number_intial) + ":" + str(atom_number_final)
    expression = "chain='"+Chains[k]+"'"
    cmd.alter(selection, expression)

cmd.set("retain_order",1)
cmd.save(pdb_out ,"MyProtein")

Commands to fix all chains in all models using a Python script

for pdb in `ls md_selected_models/*md_100ns.pdb`; do 
    pymol -qc ../add_chain_numbers.py -- $pdb ${pdb%.pdb}_FIXED-CHAINS.pdb; 
done

Simple Python script to overlay docking, MD, and wild-type Wza-D4 models

from pymol import cmd
import sys

pdb1 = sys.argv[1] # PDB docking model
pdb2 = sys.argv[2] # PDB md_100ns model
wza_pdb = "data/md_selected_models/wzaD4-consensus-full.pdb"

cmd.load(pdb1,"docking")
cmd.load(pdb2,"md_100ns")
cmd.load(wza_pdb,"wza")

cmd.align("docking", "wza")
cmd.align("md_100ns", "wza")

cmd.hide("spheres","all")
cmd.show("cartoon","all")
cmd.show("sticks",'resname tyr+cys')
cmd.set("orthoscopic",1)
cmd.bg_color('white')

TO-DOs